# _*_ coding:utf-8 _*_
# 开发团队: Mavericks
# 开发人员：Maverick·Ming
# 开发IDE： PyCharm
#   项目名：HelloWorld
#   文件名：9.10多线程实现带参多任务.py
# 开发时间：2021/5/6 23:21


# 1.导入包
import threading
from time import *


def sing(singer='小明', sing_time=1):
    """唱歌任务"""
    print(f'{singer}歌神，在唱歌ing')
    sleep(sing_time)
    print('sing over')


def dance(dancer, dance_time=1):
    """跳舞任务"""
    print(f'{dancer}舞神，在跳舞ing')
    sleep(dance_time)
    print('dance over')


def main():
    # 2.使用线程类Thread创建子线程对象
    # 使用元组方式传参，参数为1个时，必须带一个逗号。元组的顺序必须与形参顺序一致。
    sing_thread = threading.Thread(target=sing, args=('小明',))  # target指定函数名
    # 使用字典方式传参，key要与函数中的形参名一致，因为是按照key的名字传给对于的形参(即使乱序亦可)
    dance_thread = threading.Thread(target=dance, kwargs={'dancer': '毛毛', 'dance_time': 1})

    # 使用线程类的方法start()启动执行所有任务
    sing_thread.start()
    dance_thread.start()


if __name__ == '__main__':
    # 开始执行的时间
    begin_time = time()
    main()
    # 结束执行的时间
    end_time = time()
    # 总共花费的时间
    all_time = end_time - begin_time
    print(f'耗时{all_time}ms')
    # 耗时0.0009405612945556641ms
